其實是 go-mode 這個隨官方 go 發佈的 emacs major mode。本文適合正在學 emacs,想拿來寫 go 的朋友服用。無任何關於 go 的基本知識描述,請自己找其他東西閱讀咯,如爲什麼 golang 會有強制 format 原始碼格式。
上篇
關於 code navigating(瀏覽程式碼)
基本函數跳轉 M-x beginning-of-defun (C-M-a) 與 M-x end-of-defun (C-M-e)。
M-x go-goto-imports,跳轉到 import 區。
跳轉到函數定義的地方:需要安裝工具 godef。據稱,godef 是標準 go 工具的一部分,不過我的電腦(archlinux_x64)更新到最新版好像也沒有,所以還是手動安裝
go get code.google.com/p/rog-go/exp/cmd/godef
裝好之後,可用
a. M-x godef-describe 或 C-c C-d 會告訴你目前在那個「函數/包」裏面
b. M-x godef-jump 或 C-c C-j 跳轉到函數定義處。如果是其他包,則在新緩衝區打開其原始碼
用一下 elisp 程式將 C-c C-j 綁定 M-. 符合其他如 etags/ctags 的操作習慣
(add-hook 'go-mode-hook (lambda ()
(local-set-key (kbd \"M-.\") 'godef-jump)))
將程式碼貼到 playground
使用 M-x go-play-buffer 或 M-x go-play-region ,功能如名稱所示;之後會把 url 存在 kill-ring 內供貼上到其他地方~!